package org.wzh.spring.di.demot;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;

/**
 * 运行时值注入
 * 有时候,我们可能会希望避免编码值,而是想让这些值在运行时再确定.
 * 为了实现这些功能,Spring提供了两种在运行时求值的方式.
 * 属性占位符(Property placeholder)
 * Spring表达式语言(SPEL)
 * @author MicroCat
 *
 * @PropertySource 引用了类路径中的app.properties文件,这个属性文件会加载到Spring的Environment
 * 中.
 */
@Configuration
@PropertySource("classpath:org/wzh/spring/di/demot/app.properties")
public class ExpressiveConfig {

	@Autowired
	Environment env;
	
	@Bean
	public BlankDisc disc() {
		return new BlankDisc(env.getProperty("disc.title"), env.getProperty("disc.artist"));
	}
}
